/**
 * @filename:MaterialService Jan 14, 2025
 * @project Wonder Vue Admin Api  1.1.0
 * Copyright(c) 2022 Wonder Co. Ltd. 
 * All right reserved. 
 */
package com.wonder.app.service;
import com.wonder.app.domain.Material;
import com.wonder.app.request.MaterialRequest;
import com.wonder.common.common.AjaxResult;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;
/**   
 * @Description:TODO(物料列表服务层)
 * @version: 1.1.0
 * @author: Wonder
 * 
 */
public interface MaterialService extends IService<Material> {

    
    /**
     * 验证物料列表信息
     * 
     * @param material
     * @param type
     * @return 结果
     */
    public String validate(Material material,String type);   
   
	
	 /**
	 * Description:物料列表分页返回
	 * @param request//检索条件
	 * @param page//分页参数
	 * @return IPage<Material>   //分页记录
	 */
    public IPage<Material> selectList(MaterialRequest request, Page<Material> page);


    public void syncMaterial() throws Exception;

	public List<Map<String,Object>> getMaterialByNo(List<String> materialNoList) throws Exception;


	public Map<String,Object> getDepartNo(List<String> departNameList) throws Exception;

	public Map<String,Object> getCustomerName(List<String> cusTomerNameList) throws Exception;

	public Map<String,Object> getCurrencyNo(List<String> currencyList) throws Exception;

	public void saveSaleOrder(String userName,Long user_id,List<Map<String,Object>> dataList) throws Exception ;

	List<Map<String, Object>> checkCusBillNo(Long user_id)throws Exception;

	List<Map<String, Object>> checkMaterial(Long user_id) throws Exception;

	List<Map<String, Object>> checkCustomer(Long user_id) throws Exception;

	List<Map<String, Object>> checkCount(Long user_id) throws Exception;

	void deleteSaleOrder(String userName, Long user_id) throws Exception;

    void deleteOperpOrder(String userName, Long user_id) throws Exception;

	void saveSfcOperp(String userName, Long user_id, List<Map<String, Object>> map);

	List<Map<String, Object>> checkOperpBillNo(Long user_id) throws Exception;

	List<Map<String, Object>> checkOperpMaterial(Long user_id) throws Exception;

	List<Map<String, Object>> checkOperpBom(Long user_id) throws Exception;

	List<Map<String, Object>> checkOperpWorkShop(Long user_id) throws Exception;

	List<Map<String, Object>> checkOperpOrderTime(Long user_id) throws Exception;

	List<Map<String, Object>> checkOperpStartTime(Long user_id) throws Exception;

	List<Map<String, Object>> checkOperpEndTime(Long user_id) throws Exception;

	List<Map<String, Object>> checkSheep(Long user_id) throws Exception;
//销售出库  保存 删除 校验客户订单号
	void saveSaleOutOrder(String userName, Long user_id, List<Map<String, Object>> dataList) throws Exception;
	void saveSaleAOutOrder(String userName, Long user_id, List<Map<String, Object>> dataList) throws Exception;
	void deleteSaleOutOrder(String userName, Long user_id) throws Exception;
	List<Map<String, Object>> checkCusBillNoout(Long user_id)throws Exception;
	List<Map<String, Object>> checkMaterialout(Long user_id) throws Exception;
	List<Map<String, Object>> checkCustomerout(Long user_id) throws Exception;
	List<Map<String, Object>> checkCountout(Long user_id) throws Exception;
	List<Map<String, Object>> checkIsTime(Long user_id) throws Exception;

	//青岛销售订单  保存 删除 校验客户订单号
	public List<Map<String,Object>> getqingMaterialByNo(List<String> materialNoList) throws Exception;
	public Map<String,Object> getqingDepartNo(List<String> departNameList) throws Exception;
	public Map<String,Object> getqingCustomerName(List<String> cusTomerNameList) throws Exception;
	public Map<String,Object> getqingCurrencyNo(List<String> currencyList) throws Exception;

	void saveQingSaleOrder(String userName, Long user_id, List<Map<String, Object>> dataList) throws Exception;
	void deleteQingSaleOrder(String userName, Long user_id) throws Exception;
	List<Map<String, Object>> checkQingCusBillNo(Long user_id)throws Exception;//检验客户订单是否为空
	List<Map<String, Object>> checkqingCustomer(Long user_id) throws Exception;//校验终端客户
	List<Map<String, Object>> checkqingAccCustomer(Long user_id) throws Exception;//校验结算客户
	List<Map<String, Object>> checkqingMaterialNo(Long user_id) throws Exception;//校验物料编码
	List<Map<String, Object>> checkqingCount(Long user_id) throws Exception;//校验数量
	List<Map<String, Object>> checkqingdjCount(Long user_id) throws Exception;//校验数量
	List<Map<String, Object>> checkqingSheep(Long user_id) throws Exception;//校验船期

	//青岛生产订单  保存 删除 校验客户订单号
	void saveQingSfcOperp(String userName, Long user_id, List<Map<String, Object>> map);
	void deleteQingOperpOrder(String userName, Long user_id) throws Exception;
	List<Map<String, Object>> checkQingOperpBillNo(Long user_id) throws Exception;//校验制令单号
	List<Map<String, Object>> checkQingOperpMaterial(Long user_id) throws Exception;//校验物料编码
	List<Map<String, Object>> checkQingOperpDepart(Long user_id) throws Exception;//校验生产车间
	List<Map<String, Object>> checkQingOperpStartTime(Long user_id) throws Exception;//校验开始时间
	List<Map<String, Object>> checkQingOperpEndTime(Long user_id) throws Exception;//校验结束时间

	//青岛生产入库 保存 删除 校验客户订单号
	void saveQingSfcInstock(String userName, Long user_id, List<Map<String, Object>> map);
	void deleteQingsfcInstockOrder(String userName, Long user_id) throws Exception;
	List<Map<String, Object>> checkQingInstockBillNo(Long user_id) throws Exception;//校验制令单号
	List<Map<String, Object>> checkQingInstockMaterial(Long user_id) throws Exception;//校验物料编码
	List<Map<String, Object>> checkQingInstockCount(Long user_id) throws Exception;//校验物料编码
	List<Map<String, Object>> checkQingInstockStock(Long user_id) throws Exception;//校验仓库
	List<Map<String, Object>> checkQingInstocksumcount(Long user_id) throws Exception;//校验仓库
	List<Map<String, Object>> checkQingisLocation(Long user_id) throws Exception;//校验是否启用仓位


	//青岛采购入库 保存 删除 校验客户订单号
	void saveQingPurIn(String userName, Long user_id, List<Map<String, Object>> map);
	void deleteQingpurInOrder(String userName, Long user_id) throws Exception;
	List<Map<String, Object>> checkQingpurInBillNo(Long user_id) throws Exception;//校验制令单号
	List<Map<String, Object>> checkQingpurInMaterial(Long user_id) throws Exception;//校验物料编码
	List<Map<String, Object>> checkQingpurInCount(Long user_id) throws Exception;//校验物料编码
	List<Map<String, Object>> checkQingpurorderTime(Long user_id) throws Exception;//校验订单日期
	List<Map<String, Object>> checkQingMoBillNo(Long user_id) throws Exception;//校验订单日期
	List<Map<String, Object>> checkQingpurInStock(Long user_id) throws Exception;//校验仓库
	List<Map<String, Object>> checkQingpurisLocation(Long user_id) throws Exception;//校验是否启用仓位



}
